package com.xwltz.core.utils.system;

import cn.hutool.core.util.NumberUtil;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * @description SystemCpu
 * @information on version 1.0 be created by xwltz at 2021/12/29 16:40
 */

public class SystemCpu implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 核心数
	 */
	@Setter
	@Getter
	private int cpuNum;

	/**
	 * CPU总的使用率
	 */
	@Setter
	private double total;

	/**
	 * CPU系统使用率
	 */
	@Setter
	private double sys;

	/**
	 * CPU用户使用率
	 */
	@Setter
	private double used;

	/**
	 * CPU当前等待率
	 */
	@Setter
	private double wait;

	/**
	 * CPU当前空闲率
	 */
	@Setter
	private double free;

	public double getTotal() {
		return NumberUtil.round(NumberUtil.mul(total, 100), 2).doubleValue();
	}

	public double getSys() {
		return NumberUtil.round(NumberUtil.mul(sys / total, 100), 2).doubleValue();
	}

	public double getUsed() {
		return NumberUtil.round(NumberUtil.mul(used / total, 100), 2).doubleValue();
	}

	public double getWait() {
		return NumberUtil.round(NumberUtil.mul(wait / total, 100), 2).doubleValue();
	}

	public double getFree() {
		return NumberUtil.round(NumberUtil.mul(free / total, 100), 2).doubleValue();
	}
}
